package com.ruoyi.testing.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 委托协议对象 entrustment_agreement
 * 
 * @author ruoyi
 * @date 2023-10-16
 */
@ApiModel("委托协议")
@Data
@AllArgsConstructor
@NoArgsConstructor // 使用 Lombok 自动生成无参构造方法
public class EntrustmentAgreement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目id */
    private String id;

    /** 合同编号 */
    @Excel(name = "合同编号")
    @ApiModelProperty(value = "合同编号")
    private String contractNum;

    /** 合同签订日期 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private Date contractDate;

    /** 项目类别 */
    @Excel(name = "项目类别")
    @ApiModelProperty(value = "项目类别")
    private String itemType;

    /** 项目年份 */
    @Excel(name = "项目年份")
    @ApiModelProperty(value = "项目年份")
    private String itemYear;

    /** 项目编号 */
    @Excel(name = "项目编号")
    @ApiModelProperty(value = "项目编号")
    private String agreementNum;

    /** 司机信息 */
    @Excel(name = "司机信息")
    @ApiModelProperty(value = "司机信息")
    private String driver;

    /** 受检单位id */
    @Excel(name = "受检单位id")
    @ApiModelProperty(value = "受检单位id")
    private String companyId;

    /** 受检单位名称 */
    @Excel(name = "受检单位名称")
    @ApiModelProperty(value = "受检单位名称")
    private String companyName;

    /** 检测地址 */
    @Excel(name = "检测地址")
    @ApiModelProperty(value = "检测地址")
    private String testAdress;

    /** 来样日期 */
    @Excel(name = "来样日期")
    @ApiModelProperty(value = "来样日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reDate;

    /** 受检单位负责人 */
    @Excel(name = "受检单位负责人")
    @ApiModelProperty(value = "受检单位负责人")
    private String companyCharge;

    /** 受检单位地址 */
    @Excel(name = "受检单位地址")
    @ApiModelProperty(value = "受检单位地址")
    private String companyAdress;

    /** 受检单位负责人电话 */
    @Excel(name = "受检单位负责人电话")
    @ApiModelProperty(value = "受检单位负责人电话")
    private String chargePhone;

    /** 委托检测项目 */
    @Excel(name = "委托检测项目")
    @ApiModelProperty(value = "委托检测项目")
    private String commissionProject;

    /** 检测检验类别 */
    @Excel(name = "检测检验类别")
    @ApiModelProperty(value = "检测检验类别")
    private String testCategory;

    /** 计划完成时间 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划完成时间")
    private Date planTime;

    /** 任务安排人员 */
    @Excel(name = "任务安排人员")
    @ApiModelProperty(value = "任务安排人员")
    private String taskDistributionPeople;

    /** 任务安排人员电话 */
    @Excel(name = "任务安排人员电话")
    @ApiModelProperty(value = "任务安排人员电话")
    private String distributionPeoplePhone;

    /** 任务安排时间 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    @Excel(name = "任务安排时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "任务安排时间")
    private Date taskDistributionTime;

    /** 项目状态 */
    @Excel(name = "项目状态")
    @ApiModelProperty(value = "项目状态")
    private String state;

    /** 受检样品类别详情 */
    @ApiModelProperty(value = "受检样品类别详情")
    private List<EntrustmentAgreementDetail> list;

    /** 受检详情单条 */
    private EntrustmentAgreementDetail entrustmentAgreementDetail;

    /** 检测日期 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "检测日期")
    private Date testDate;

    /** 被检单位报告出具名称 */
    @ApiModelProperty(value = "被检单位报告出具名称")
    private String reportName;

    /** 矿井生产能力（万吨） */
    private String kjsch;

    /** 带队组长 */
    private String mainTester;

    /** 带队组长人名 */
    private String mainTesterName;

    /** 被检单位经办人 */
    private String companyPeople;

    /** 经办人电话 */
    private String peoplePhone;

    /** 经办日期 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    @ApiModelProperty(value = "经办日期")
    private Date chargeTime;

    /** 业务负责人 */
    private String testPeople;

    /** 负责人电话 */
    private String testPhone;

    /** 负责人确认日期 */
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private Date testPeopleDate;

}
